package com.hzlj.position.locate.controller;


import com.fz.common.base.dto.DeleteCommonDTO;
import com.fz.common.base.dto.PageParamDTO;
import com.fz.common.base.dto.QueryPageResultDTO;
import com.fz.common.base.dto.ResultDTO;
import com.hzlj.position.locate.common.dto.abnProhibitAreas.AbnProhibitAreasAddDTO;
import com.hzlj.position.locate.common.dto.abnProhibitAreas.AbnProhibitAreasQueryParamDTO;
import com.hzlj.position.locate.common.dto.abnProhibitAreas.AbnProhibitAreasQueryResultDTO;
import com.hzlj.position.locate.common.dto.abnProhibitAreas.AbnProhibitAreasUpdateDTO;
import com.hzlj.position.locate.service.AbnProhibitAreasService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 【禁止区域】接口
 *
 * @author lifh
 * @date 2023-03-28 10:20:31
 */
@Slf4j
@RestController
@RequestMapping("/position/abn/prohibit/areas")
public class AbnProhibitAreasController {

    @Resource
    private AbnProhibitAreasService abnProhibitAreasService;

    /**
     * 通过id查询禁止区域
     *
     * @param id id
     * @return 实例对象
     */
    @GetMapping("/{id}")
    public ResultDTO<AbnProhibitAreasQueryResultDTO> getAbnProhibitAreasById(@PathVariable("id") String id) {
        log.info("【查询信息】禁止区域:id={}", id);
        return new ResultDTO<>(abnProhibitAreasService.getAbnProhibitAreasById(id));
    }


    /**
     * 保存禁止区域
     *
     * @param dto 添加的信息
     * @return 实例对象
     */
    @PutMapping("")
    public ResultDTO<Boolean> saveAbnProhibitAreas(@RequestBody AbnProhibitAreasAddDTO dto) {
        log.info("【新增信息】禁止区域={}", dto);
        abnProhibitAreasService.saveAbnProhibitAreas(dto);
        return new ResultDTO<>();
    }

    /**
     * 更新禁止区域
     *
     * @param dto 更新的信息
     * @return 是否更新成功
     */
    @PostMapping(value = "")
    public ResultDTO<Boolean> updateAbnProhibitAreas(@RequestBody AbnProhibitAreasUpdateDTO dto) {
        log.info("【更新信息】禁止区域={}", dto);
        return new ResultDTO<>(
                abnProhibitAreasService.updateAbnProhibitAreas(dto)
        );
    }

    /**
     * 删除禁止区域
     *
     * @return 是否删除成功
     */
    @DeleteMapping(value = "")
    public ResultDTO<Boolean> deleteAbnProhibitAreas(@RequestBody DeleteCommonDTO<String> dto) {
        log.info("【删除信息】禁止区域={}", dto);
        return new ResultDTO<>(abnProhibitAreasService.deleteAbnProhibitAreas(dto));
    }


    /**
     * 分页查询 禁止区域
     *
     * @param dto          查询条件
     * @param pageParamDTO 分页信息
     * @return 对象列表
     */
    @GetMapping("/list/page")
    public ResultDTO<QueryPageResultDTO<AbnProhibitAreasQueryResultDTO>> pageAbnProhibitAreas(AbnProhibitAreasQueryParamDTO dto, PageParamDTO pageParamDTO) {
        log.info("【查询分页列表】信息禁止区域,AbnProhibitAreasQueryParamDTO={},pageParamDTO={}", dto, pageParamDTO);
        return new ResultDTO<>(abnProhibitAreasService.pageAbnProhibitAreas(dto, pageParamDTO));
    }

}

